﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using csvm.contracts.components;
using csvm.contracts.datamodel;

namespace csvm.parametervalidation
{
    public class ParameterValidator : IKommandozeilenparameterValidieren
    {     
        public void In_Validieren(string[] args)
        {
            if (args.Count() != 2)
                throw new TargetParameterCountException(
                    "Es werden zwei Parameter erwartet: CSV-Dateiname und Metadatendateiname");
            if (!File.Exists(args[0]))
                throw new ArgumentException("Der CSV-Dateiname existiert nicht", @"Parameter 1: CSV-Datei");
           
            var analyseParameter = new AnalyseParameter(args[0], args[1]);
            Out_Analysieren(analyseParameter);
        }

        public event Action<contracts.datamodel.AnalyseParameter> Out_Analysieren;
    }
}
